﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Entidad;
using Datos.DAO;
namespace Negocio.BL
{
    public class GrupoLogic
    {
        GrupoDAO GrupoDao = new GrupoDAO();

        public List<T_S_GRUPO> listarGrupo(string USR_CREACION)
        {
            return GrupoDao.listarGrupo(USR_CREACION);

        }

        public List<T_S_GRUPO> ListarAccesosUsuario()
        {
            return GrupoDao.listarAccesosUsuarios();

        }

       
        public List<T_S_USUARIO_GRUPO> listarUsuario_Grupo()
        {


            return GrupoDao.listarUsuario_Grupo();
        }
        
        public List<int> ObtenerOpcion_Grupo(int idGrupo)
        {

            return GrupoDao.ObtenerOpcion_Grupo(idGrupo);
        }
        
        public bool Insertar(T_S_GRUPO obj)
        {

            return GrupoDao.Insertar(obj);
        }

        public bool Modicar(T_S_GRUPO obj)
        {
            return GrupoDao.Modificar(obj);
        }

        public bool Eliminar(T_S_GRUPO obj)
        {
            return GrupoDao.Eliminar(obj);
        }


        public bool EliminarGrupoopcion(int id_grupo)
        {

            return GrupoDao.PA_delteGrupoOpcion(id_grupo);

        }
        
        public bool ActualizarEstadoGrupo(int id_grupo, string estado)
        {

            return GrupoDao.Actualiza_EstadoGrupo(id_grupo, estado);


        }

        // public int GrabarGrupo(T_S_GRUPO entity, List<int> listOpciones)
        //{
        //    int id = 0;
        //    try
        //    {


        //        //GrupoDao.save(entity);
        //        //id = GrupoDao.saveGrupo(entity);

        //        //this.GrabarAccesosGrupo(id, listOpciones);

        //        //if (entity.ID_GRUPO == 0)
        //        //{
        //        id = Convert.ToInt32(GrupoDao.InsertarGrupo(entity));

        //        this.GrabarAccesosGrupo(id, listOpciones);


        //        return id;
        //        //}
        //        //else
        //        //{
        //        //    entity.USR_ACTUALIZO = entity.USR_CREACION;
        //        //    GrupoDao.Modificar(entity);
        //        //    id = entity.ID_GRUPO;
        //        //}

        //    }
        //    catch (Exception)
        //    {

        //    }
        //    return id;
        //}

        public void GrabarAccesosGrupo(int id, List<int> listOpciones)
        {

            //GrupoDao.Delete(group);

            foreach (int idOpcion in listOpciones)
            {
                VW_GRUPO_OPCION entity = new VW_GRUPO_OPCION();
                entity.ID_GRUPO = id;
                entity.ID_OPCION = idOpcion;

                GrupoDao.InsertarGrupoOpcion2(id, idOpcion);
                
            }
        }

        public T_S_GRUPO ObtenerGrupo(int idGrupo)
        {
            return GrupoDao.ObtenerGrupo(idGrupo);
        }

        public List<T_S_GRUPO> listarGrupo2()
        {
            return GrupoDao.listarGrupo2();

        }


        public List<T_S_GRUPO> listarGrupoxOpcion(int id_opcion) {
            return GrupoDao.listarGrupoxOpcion(id_opcion);
        }




          public bool EliminaRelacionGrupoOpcion(int idGrupo, int idOpcion) {

              return GrupoDao.EliminaRelacionGrupoOpcion(idGrupo,idOpcion);
          }
    }
}
